Method and system for adding function to a web page

ABSTRACT

A computer network ( 20 ) includes a first processor ( 22 ) for maintaining a Web page ( 34 ) having an embedded first code module ( 36 ) and accessible through a Web address ( 38 ). A second processor ( 24 ) supports a Web browser ( 52 ) for downloading the Web page ( 34 ) and executing the first code module ( 36 ). When executed, the first code module ( 36 ) issues a first command ( 93 ) to retrieve a second code module ( 90 ) from a server system ( 26 ). The server system ( 26 ) includes a database ( 68 ) having a service response ( 162, 176, 186 ) associated with the Web address ( 38 ). A processor ( 62 ) assembles the second code module ( 90 ) having the service response ( 162, 176, 186 ). When the second code module is retrieved, the first code module ( 36 ) issues a second command ( 106 ) to initiate execution of the second code module ( 90 ) to provide added function to the Web page ( 34 ).

TECHNICAL FIELD OF THE INVENTION

The present invention relates to the field of computer networks. Morespecifically, the present invention relates to methods and systems foradding function to Web pages that are accessible through the Internet.

BACKGROUND OF THE INVENTION

The worldwide network of computers commonly referred to as the“Internet” has seen explosive growth in the last several years. TheInternet is expected to evolve with the adaptation of new forms ofinteractive technology applied to the basic Internet infrastructurewhich consists of many elements, not the least of which are the Webbrowser and Web page.

Groups of Web pages, forming Web sites, are evolving to a high level ofsophistication at an staggering rate. Small to large corporations aretaking advantage of this trend, and electronic commerce (E-Commerce),that is, business transactions taking place over the Internet isadvancing at a rapid pace. It is highly desirable for those who wouldlike to carry out commerce on the Internet to have a very sophisticatedWeb site that can perform numerous functions and services to anincreasingly sophisticated class of Web site visitors. Such Web sitesmay desirably include such information services as searchable databasesfor price, stock, shipping, etc.; product information; competitivecomparisons, and so forth.

In order for such information services to be successfully communicatedto potential customers, it is imperative to garner the interest of largenumbers of Internet users. As with more traditional forms of commerce,advertising plays an important role in attracting customers.Accordingly, what is needed is economical, yet effective, advertisingand publicity in order to attract the interest of Internet users.

A recent advance in Web site technology is the addition of streamingmedia, as well as other more sophisticated functional enhancements, toWeb sites. The concept of streaming media is defined broadly as audioand video being delivered to a Web site visitor in packets over theInternet. The streaming media can be delivered so quickly that audiosounds and/or graphic images can be heard and seen almost immediately,comparable in quality to commercial, over-the-air radio or television.Some examples of streaming media include banners, informational feedsusing a “marquee”, audio based commercials, and so forth.

Unfortunately, it is expensive to add such enhancements to Web sites.Bandwidth costs for delivering streaming media may be prohibitivelyexpensive. In addition, there are problems associated with thecomplexity of producing the streaming media that is to be “broadcast”over the Web sites, and licensing of the streaming media if it ispropriety.

A typical example of adding function to a Web site is the addition of an“affiliate” program. An affiliate program, provided by a third party maybe desired by the Web site developer to add functionality to their Website for the purpose of enhancing the appeal of the site or for revenuesharing in which they will receive a percentage of sales. In order toobtain such an affiliate program, the Web site developer may be requiredto register with the supplier of the affiliate program in order toobtain and execute the affiliate program in connection with his/her Website. Unfortunately, such a registration process typically requires theWeb site developer to fill out lengthy on-line electronic forms. Suchforms may be cumbersome and so frustrating, that filling out such formsleads to their abandonment on the part of the Web site developer. If theWeb site developer successfully manages to register, the Web sitedeveloper must then wait for the implementing code for the affiliateprogram to be e-mailed to him/her. Once the Web site developer receivesthe implementing code, the code is then copied and pasted onto theHyperText Markup Language (HTML) for the Web site where desired.

Unfortunately, universal capability with the Web browsers thatsubsequently access the Web site with the enhanced function provided bythe affiliate program is limited. That is, even though a Web sitedeveloper has successfully added the implementing code for the affiliateprogram, all Web browsers accessing the Web site may not be able tointerpret the affiliate program and the Web site visitor may not be ableto experience the added function.

SUMMARY OF THE INVENTION

Accordingly, it is an advantage of the present invention that a methodand system for adding function to a Web page are provided.

It is another advantage of the present invention that a method andsystem are provided that are compatible with Web browsers which adhereto the standards for HyperText Transfer Protocol (HTTP).

It is another advantage of the present invention that a method andsystem are provided that add function to a Web page through an easilydistributed software code module.

It is yet another advantage of the present invention that a method andsystem are provided that deliver services by client demand that arespecific to predetermined parameters.

The above and other advantages of the present invention are carried outin one form by a method of operating a computer network to add functionto a Web page. The method calls for downloading the Web page at aprocessor platform. When the Web page is downloaded, automaticallyexecuting a first code module embedded in the Web page. The first codemodule issues a first command to retrieve a second code module, via anetwork connection, from a server system, and the first code moduleissues a second command to initiate execution of the second code moduleat the processor platform.

The above and other advantages of the present invention are carried outin another form by a computer readable code module for adding functionto a Web page. The code module is configured to be embedded in the Webpage which is generated in a HyperText Markup Language (HTML), and isconfigured for automatic execution when the Web page is downloaded to aclient machine supporting a graphical user interface and a Web browser.The computer readable code module includes means for communicating a Webaddress of the Web page to a server system via a network connection toinitiate a download of a second computer readable code module to theclient machine. The computer readable code module further includes meansfor communicating first information characterizing said Web browser tosaid server and means for communicating second information,characterizing said client machine to said server. In addition, thecomputer readable code module includes means for initiating execution ofsaid second computer readable code module following the download of thesecond computer readable code module and means for providing a commenttag informing the Web browser to ignore the initiating means.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention may be derived byreferring to the detailed description and claims when considered inconnection with the Figures, wherein like reference numbers refer tosimilar items throughout the Figures, and:

FIG. 1 shows a block diagram of a computer network in accordance with apreferred embodiment of the present invention;

FIG. 2 shows an exemplary computer readable code module in accordancewith the preferred embodiment of the present invention,

FIG. 3 shows a flow chart of a Web page display process.

FIG. 4 shows an electronic display presenting a Web page including amedia appliance metaphor;

FIG. 5 shows a flow chart of a service response provision process;

FIG. 6 shows a registration subprocess of the service response provisionprocess;

FIG. 7 shows a Web address database generated by a server system of thecomputer network;

FIG. 8 shows a visitor registration subprocess of the service responseprovision process;

FIG. 9 shows a visitor database generated by the server system of thecomputer network;

FIG. 10 shows a visitor pre-registration process performed prior to theWeb page display process of FIG. 3;

FIG. 11 shows the electronic display presenting the media appliancemetaphor detached from the Web page; and

FIG. 12 shows the electronic display presenting another Web pageincluding the media appliance metaphor.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows a block diagram of a computer network 20 in accordance witha preferred embodiment of the present invention. Computer network 20includes a first processor platform 22, a second processor platform 24,and a server system 26. First processor platform 22, second processorplatform 24, and server system 26 are connected together via a network28. In a preferred embodiment, network 28 is the Internet. However,network 28 can also represent a LAN, a WAN, a wireless cellular network,or a combination of a wireline and wireless cellular network. It shouldbe readily apparent to those skilled in the art that computer network 20also includes many more processors and server systems which are notshown for the sake of clarity.

First processor platform 22 includes a central processing unit (CPU) 30and a memory 32. Memory 32 includes a Web page 34 in which a first codemodule 36 is embedded. A Web address 38 in memory 32 is associated withWeb page 34. In a preferred embodiment, Web page 34 is generated inHyperText Markup Language (HTML). HTML is the authoring softwarelanguage used on the Internet's World Wide Web for creating Web pages.

Web address 38 is a Universal Resource Locator (URL), or a stringexpression used to locate Web page 34 via network 28. It should bereadily apparent to those skilled in the art that first processorplatform 22 also includes additional components such as input/outputlines, a keyboard and/or mouse, and a display terminal which are notshown for the sake of clarity. In addition, memory 32 also containsadditional information, such as application programs, operating systems,data, etc., which also are not shown for the sake of clarity.

Second processor platform 24 includes a CPU 40, a memory 42,input/output lines 44, an input device 46, such as a keyboard or mouse,a display device 48, such as a display terminal, and speakers 50. Memory42 includes Web browser software 52 and a temporary memory 54. A firstportion of memory 42 is designated for browser information (BROWSERINFO.) 56, and a second portion of memory 42 is designated for platforminformation (PLATFORM INFO.) 58. In addition, a third portion of memory42 is designated for a tracking index 60, or cookie, which will bediscussed in detail below. Those skilled in the art will understand thatmemory 42 also contains additional information, such as applicationprograms, operating systems, data, etc., which are not shown in FIG. 1for the sake of clarity.

Web browser 52 is software which navigates a web of interconnecteddocuments on the World Wide Web via Internet 28. When a Web site, suchas Web page 34, is accessed through Web address 38, Web browser 52 movesa copy of Web page 34 into temporary memory 58. Web browser 52 usesHyperText Transfer Protocol (HTTP) for communicating over Internet 28.In a preferred embodiment, Web browser 52 supports the HyperText MarkupLanguage 1.0 and the Javascript 1.0 standards, such as Netscape 2.0 andabove, Internet Explorer 3.0, and above, and the like.

Browser information 56 is information specific to Web browser 52.Browser information 56 includes, for example, make and version of Webbrowser 52, what plug-ins are currently present, and so forth. Platforminformation 58 is information specific to second processor platform 24.Platform information 58 includes, for example, make and version ofplatform 24, make and version of the operating system operating onplatform 24, and so forth.

Server system 26 includes a processor (CPU) 62, a memory 64, a databasestructure 66 having a Web address database 68 and a visitor database 70,and a server structure 72 for accommodating streaming media servers 74and other media servers 76. Ports 78 are in communication with serverstructure 72 and Internet 28 and are used by the Transmission ControlProtocol/Internet Protocol (TCP/IP) transport protocol for providingcommunication across interconnected networks, between computers withdiverse hardware architectures, and with various operating systems.

Memory 64 includes Web address database instructions 80, visitordatabase instructions 82, a common gateway interface program 84, codeassembler instructions 86, and communication instructions 88. Webaddress database instructions 80 are executed by processor 62 formaintaining and accessing Web address database 68. Likewise, visitordatabase instructions 82 are executed by processor 62 for maintainingand accessing visitor database 70. CGI interface program 84 executesfunctions at server system 26 including among other things, checking ifWeb site 34 is registered. Code assembler instructions 86 are executedby processor 62 to assemble a second code module 90 which issubsequently communicated to second processor platform 24 through theexecution of CGI interface program 84 and communication instructions 88.Second code module 90 is communicated from ports 78 over Internet 28 anddownloaded to temporary memory 54 at second processor platform 24.

FIG. 2 shows an example format of first code module 36 in accordancewith the preferred embodiment of the present invention. First codemodule 36 is generated in HTML and embedded in the HTML of Web page 34(FIG. 1) when a Web page developer designs Web page 34. In a preferredembodiment, first code module 36 is generally distributable. That is,first code module 36 may be distributed via Internet 28, and copied andpasted into a Web page during Web page development. First code module 36executes enough functionality to act as a “bootstrap loader” in order toload second code module 90 (FIG. 1) into temporary memory 54 (FIG. 1) ofsecond processor platform 24 (FIG. 1) for subsequent execution.

A first command line (LINE NO. 1) 92 contains an exemplaryinitialization for a first command 93, i.e., a script, that willactivate a Web address 94 for contacting server system 26 (FIG. 1) andcalls CGI program 84 into execution. In addition, first command line 92communicates Web address 38 to server system 26 via a network connection96 (FIG. 1) over Internet 28. CGI program 84 executes multiple functionsat server system 26. For example, CGI program 84 checks to see whetheror not Web page 34 is registered. In addition CGI program 84 initiatesthe downloading of second code module 90 to second processor platform24. A second command line (LINE NO. 2) 98 terminates the script startedin first command line 92.

A third command line (LINE NO. 3) 100 starts a new script. Third commandline 100 also contains a comment tag 102 used to allow Web browser 52 toignore a fourth command line (LINE NO. 4) 104. Fourth command line 104contains a second command 106 that initiates execution of second codemodule 90 that was downloaded to temporary memory 54 of second processorplatform 24. A fifth command line 108 terminates comment tag 102 andterminates the script begun on third command line 100.

FIG. 3 shows a flow chart of a Web page display process 110. Web pagedisplay process 110 is performed by second processor platform 24 to addfunction, such as streaming media or other media services to Web page 34when downloaded to second processor platform 24.

With reference to FIG. 4, FIG. 4 shows display device 48 (FIG. 1)presenting Web page 34 with added function, namely with the addedfunction of a media appliance metaphor 111 in response to the activitiescarried out in connection with Web page display process 110.

Media appliance metaphor 111 is a software device that exists in therealm of electronic communication and has a counterpart in the realworld. When displayed with Web page 34 on display device 48 of secondprocessor platform 24, media appliance metaphor 111 is a graphicrepresentation of something that looks and behaves like a mediaappliance. In the exemplary embodiment, media appliance metaphor 111represents a radio image. Other examples of media appliance metaphorsinclude television images, computer images, computer game toy images,and so forth. When applied to Web page 34, media appliance metaphor 111gives the visitor to Web page 34 the impression that they already knowhow to use the device because it looks and acts like something that theyare already familiar with.

Metaphors take any form desired for which practical programmingconstraints can be met. This includes, but is not limited to interactivevideo games, network games, network information appliances such as webbased telephones or call centers, and notification service appliances,like beepers. First code module 36 (FIG. 1) used to apply the metaphoron a Web page is a universal program interface, and acts as a bootstraploader capable of retrieving and executing programs suitable for such apurpose.

Although the present invention is described in connection with thepresentation of media appliance metaphor 111 as applied to Web page 34,it need not be limited to such a media appliance metaphor. Rather, firstcode module 36 (FIG. 2) can be embedded in a Web page to be executed bya visiting processor platform in order to execute other code modules notassociated with media appliance metaphors.

With reference back to FIG. 3, Web page display process 110 begins witha task 112. Task 112 causes Web browser 52 to download Web page 34 atsecond processor platform 24. In other words, Web browser 52 moves acopy of Web page 34, with the embedded first code module 36 intotemporary memory 54 (FIG. 1) of second processor platform 24.

When Web page 34 is downloaded at second processor platform 24 in task112, a task 114 is performed. Task 114 causes Web browser 52 toautomatically execute first code module 36 embedded in Web page 34, acopy of which is now stored in temporary memory 54.

Following task 114, a task 116 is performed. At task 116, first codemodule 36 executes first command line 92 (FIG. 2) to retrieve secondcode module 90 by issuing first command 93 to activate Web address 94,contact server system 26 (FIG. 1), and call CGI program 84 intoexecution.

A task 118 is performed in connection with task 116. Task 118 causessecond processor platform 24 to communicate Web address 38 to serversystem 26 through the execution of first command line 92, as discussedpreviously.

Next, a task 120 is performed. Like task 118, task 120 causes secondprocessor platform 24 to communicate browser information 56 (FIG. 1) andplatform information 58. (FIG. 1), through the execution of firstcommand line 92, to server system 26. Following task 120, secondprocessor platform 24 performs additional activities (not shown)pertinent to the downloading and presentation of Web page 34 on displaydevice 48 (FIG. 1). Furthermore, as indicated by ellipses following task120, and relevant to display process 110, second processor platform 24awaits communication from server system 26 before display process 110can proceed.

FIG. 5 shows a flow chart of a service response provision process 122performed by server system 26 (FIG. 1) in response to display process110 (FIG. 3). Process 122 begins with a task 124. Task 124 causesprocessor 62 (FIG. 1) of server system 26 to receive first command 93(FIG. 3).

In response to receipt of first command 93 in task 124, a task 126 isperformed. At task 126, server system 26 receives Web address 38communicated by second processor platform 24 at task 118 (FIG. 3) ofdisplay process 110 (FIG. 3).

Following task 126, a query task 128 is performed. At query task 128,server system 26 determines if Web page 34 located by Web address 38 ispreviously registered. That is, processor 62 executes a portion of Webaddress database instructions 80 to access Web address database 68 inorder to locate an entry in Web address database 68 corresponding to Webaddress 38.

When processor 62 determines that there is no entry in Web Addressdatabase 68 for Web address 38, process 122 proceeds to a task 130. Task130 causes processor 62 of server system 26 to perform a registrationsubprocess.

FIG. 6 shows a registration subprocess 132 performed in response to task130 of service response provision process 122 (FIG. 4). Registrationsubprocess 132 is performed by server system 26 to register Web page 34with the controlling entity of server system 26. In addition,registration subprocess 132 is performed to determine a service response(discussed below) for Web page 34.

Registration subprocess 132 is performed automatically the first timethat Web page 34 is downloaded at a processor platform. Desirably,registration subprocess 132 is invoked immediately following the designof Web page 34 by a Web page developer. For example, following thedesign of Web page 34, the Web page developer may download Web page 34at a processor platform to review the graphical, textual, and audiocontent of Web page 34 before Web page 34 becomes generally accessibleby visitors.

When query task 128 determines that there is no entry in Web addressdatabase 68 for Web address 38 (FIG. 1), server system 26 may schedule atime to perform registration subprocess 132. Alternatively, registrationsubprocess 132 may be performed at task 130 (FIG. 4) immediately uponacknowledgment that there is no entry in Web address database 68 (FIG.1).

Registration subprocess 132 begins with a task 134. Task 134 causesserver system 26 (FIG. 1) to retrieve Web page 34. Task 134 may alsocauses server system 26 to retrieve Web pages (not shown) that arenested in association with Web page 34.

In response to task 134, a task 136 is performed. Task 136 causesprocessor 62 of server system 26 execute a portion of Web addressdatabase instructions 80 to extract information content of Web page 34.The information content of Web page 34 is derived from all charactersand words that are written on Web page 34, and that are publiclyaccessible. The information content may then be reduced by extractinginformational metatags, or HTML tags, embedded in Web page 34 that areused to specify information about Web page 34. In particular, the“keyword” and “description” metatags usually contain words anddescription information that accurately describe Web page 34. Otherinformational content which may be extracted are links, other URLs,domain names, domain name extensions (such as com, .edu., .jp, .uk,etc.), and so forth.

Following task 136, a task 138 is performed. Task 138 causes processor62 to archive the information content described in connection with task136.

In response to extraction task 136 and archival task 138, a task 140 isperformed. Task 140 causes processor 62 (FIG. 1) executing Web addressdatabase instructions 80 to produce a particular “signature” or profileof Web page 34. This profile is important for determining the nature ofthe interest by a visitor using second processor platform 24 to displayWeb page 34 from whence the profile is produced in order to perform aservice response (discussed below) related to the profile.

Following task 140, a query task 142 is performed. Query task 142determines whether or not Web page 34 can be registered. Processor 62(FIG. 1) may determine that Web page 34 cannot be registered if theinformation content of Web page 34 is objectionable or otherwiseunacceptable to be displayed with added function, i.e., media appliancemetaphor 111 (FIG. 4). When query task 142 determines that Web page 34is not to be registered, subprocess 132 proceeds to a task 144.

Task 144 causes processor 62 (FIG. 2) to form a service responseindicating a denial of service. In a preferred embodiment, a desiredservice response is media appliance metaphor 111 functioning to providestreaming media, in this case music, along with Web page 34. However,with respect to task 144, the service response indicating denial ofservice may be the media appliance metaphor 111 having a slash throughit. Alternatively, the service response may simply be an absence of anymedia appliance metaphor. Following task 144, subprocess 132 proceeds toa task 146.

Referring to FIG. 7 in connection with task 146, FIG. 7 shows Webaddress database 68 of server system 26 (FIG. 1). Web address database68 includes as a minimum, a Web address field 150, a Web page profilefield 152, a service response field 154, and a parameter set field 156.Task 146 (FIG. 6) causes processor 62 (FIG. 1) to generate an entry, forexample, a first exemplary entry 158, in Web address database 68. Webaddress field 150 is designated for a Web address, or URL. Profile field152 contains the profile of the Web address produced in task 140 (FIG.6) of registration subprocess 132. Service response field 154 isdesignated for a service response, and parameter set field 156 isdesignated for parameters used to assemble second code module 90 havingthe desired service response.

First entry 158 generated in response to task 144 (FIG. 6) includes Webaddress 38 identified simply as URL 1 in Web address field 150, aprofile 160 in profile field 152 associated with URL 1 indicates Webpage 34 as being directed toward RECREATION/GOLF. A service response 162related to profile 160 indicating a denial of service is stored inservice response field 154 for entry 158, and a denial content parameterset 164 associated with service response 162 are used to form anaudible, visual, or other presentation of denial service response 162.

Referring back to query task 142 (FIG. 6) of registration subprocess132, when query task 142 determines that Web page 34 is registered,subprocess 132 proceeds to a query task 166. At query task 166,processor 62 (FIG. 1) may execute a portion of Web address databaseinstructions 80 to determine if a service response for Web page 34 is tobe customized. That is, the Web page developer of Web page 34 has theoption of customizing media appliance metaphor 111 (FIG. 4). Suchcustomization may include, but is not limited to music formats tailoredto fit the profile, or personality, of Web page 34, the appearance ofmetaphor 111, the names and formats of the radio channels, the bannersthat are displayed, the specific type of informational feeds, and soforth.

When processor 62 determines that the service response is to becustomized, subprocess 132 proceeds to a task 168. At task 168,processor 62 (FIG. 1) establishes a parameter set for customization ofmedia appliance metaphor 111 to be applied to Web page 34. The custommetaphor is defined by the parameter set. Establishment of the parameterset may be performed through a query exercise performed between serversystem 26 and the Web page developer of Web page 34. Customization caninclude references to commercials targeted to Web page 34, customconfiguration data, custom Web page metaphor preferences, Web page ownerpreferences, and so forth.

In response to task 168, a task 170 is performed. Task 170 causesprocessor 62 to form a service response indicating conditional service,i.e., presentation of media appliance metaphor 111 that has beencustomized as a result of the activities associated with task 168.Following task 170, registration subprocess 132 proceeds to task 146 forgeneration of an entry in Web address database 68 (FIG. 7) to store theservice response in association with the Web address.

Referring momentarily to FIG. 7, Web address database 68 includes asecond exemplary entry 172. Second entry 172 generated in response totask 170 (FIG. 6) includes a Web address 38 in Web address field 150identified simply as URL 2. A profile 174 in profile field 152associated with URL 2 indicates Web page 34 as being directed towardTEXAS COOKING. A service response 176 related to profile 174 indicatingconditional service is stored in service response field 154 for entry172, and a conditional content parameter set 178 associated withconditional service response 176 is used to form an audible, visual, orother presentation of conditional service response 176.

With reference back to registration subprocess 132 (FIG. 6), whenprocessor 62 determines at query task 166 the service response is not tobe customized, registration subprocess 132 proceeds to a task 180. Task180 causes processor 62 to form a service response indicating apredetermined, or default, service. Such a service response isdetermined by the entity controlling server system 26 (FIG. 1). In task180, the controlling entity can determine the look and feel of mediaappliance metaphor 111 (FIG. 4), the particular audio format to be usedwith media appliance metaphor 111, for example a particular music type,the controls available to a visitor to Web page 34, and so forth.

Following task 180, subprocess 132 proceeds to task 146 where an entryis generated in Web address database 68 (FIG. 7) to store the serviceresponse in association with the web address. Again referring to Webaddress database 68 (FIG. 7), Web address database 68 includes a thirdexemplary entry 182. Third entry 182, generated in response to task 180(FIG. 6), includes Web address 38 in Web address field 150 identifiedsimply as URL 3. A profile 184 in profile field 152 associated with URL3 indicates Web page 34 as being directed toward WEDDING. A serviceresponse 186 indicating a predetermined service is stored in serviceresponse field 154 for entry 182, and a predetermined content parameterset 188 associated with service response 186 is used to form an audible,visual, or other presentation of predetermined service response 186.

Following task 146 and the formation of service response 162 indicatingdenial of service, the formation of service response 176 indicatingconditional service, or the formation of service response 186 indicatingpredetermined service, Web page 34 is registered, and subprocess 132exits.

Referring back to service response provision process 122 (FIG. 5)following task 130 in which registration subprocess 132 (FIG. 6) hasbeen performed, or when query task 128 determines that Web page 34(FIG. 1) identified by Web address 38 (FIG. 1) has been previouslyregistered, provision process 122 continues with a task 190.

Task 190 causes processor 62 (FIG. 1) to receive browser information 56(FIG. 1) and platform information 58 (FIG. 1) from second processorplatform 24 (FIG. 1). As discussed previously, browser information 56includes, for example, make and version of Web browser 52, what plug-insare currently present, and so forth. Platform information 58 includes,for example, make and version of platform 24, make and version of theoperating system operating on platform 24, and so forth.

In response to task 190, a query task 192 is performed. Query task 192causes processor 62 to execute a portion of visitor databaseinstructions 82 (FIG. 1) to determine if there is an entry in visitordatabase 70 related to browser information 56 and platform information58. When query task 192 determines that there is no entry in visitordatabase 70, indicating that a user of second processor platform 24 hasnot previously downloaded a Web page containing first code module 36,provision process 122 proceeds to a task 194.

Task 194 causes processor 62 to further execute visitor databaseinstructions 82 to perform a visitor registration subprocess. FIG. 8shows a visitor registration subprocess 196 of service responseprovision process 122. Visitor registration subprocess 196 is performedfor tracking visitors to Web page 34. Visitor registration subprocess196 generates visitor database 70 containing visitor demographics andinterests that may be useful for targeting advertising and tailoringadded function to Web pages.

Visitor registration subprocess 196 begins with a task 198. Task 198causes server system 26 (FIG. 1) to apply tracking index 60 to secondprocessor platform 24 via network connection 96. Tracking index 60, alsoknown as a cookie, is a feature of HTTP that allows the entitycontrolling server system 26 to place information in memory 42 (FIG. 1)of second processor platform 24. Tracking index 60 allows server system26 to both store and retrieve information on second processor platform24. Tracking index 60 is persistent, meaning it remains in memory 42(FIG. 1) of second processor platform 24 for subsequent use by serversystem 26. Since tracking index 60 is persistent, tracking index 60 canbe used by server system 26 to track a visitor, using second processorplatform 24, to any Web page that has embedded therein first code module36.

In connection with task 198, a task 200 is performed. Task 200 causesprocessor 62 (FIG. 1) to generate an entry in visitor database 70 tostore browser information 56 and platform information 58 in associationwith tracking index 60. Following task 200, visitor registrationsubprocess exits.

FIG. 9 shows visitor database 70 generated by server system 26 ofcomputer network 20. Visitor database 70 includes as a minimum, atracking index field 202, a browser ID field 204, a platform ID field206, and a visitor preferences field 208. Task 200 (FIG. 8) causesprocessor 62 (FIG. 1) to generate a visitor database entry 210, invisitor database 70. Tracking index field 202 is designated for atracking index, or cookie, such as tracking index 60 identifying secondprocessor platform 24. Browser ID field 204 contains browser information56 received in task 190 (FIG. 5) of provision process 122. Likewise,platform ID field 206 is designated for platform information 58 receivedin task 190. Visitor preferences field 208 is designated for an optionalvisitor specified parameter set 212 assembled in response to a visitorpre-registration process (discussed below).

Referring back to service response provision process 122 (FIG. 5),following task 194 in which visitor registration subprocess 196 isperformed or when query task 192 determines that entry 210 (FIG. 9) ispresent in visitor database 70, process 122 proceeds to a query task214.

Query task 214 determines if entry 210 includes visitor specifiedparameter set 212. As mentioned previously, visitor specified parameterset 212 may be present if second processor platform has previouslyperformed a visitor pre-registration process.

FIG. 10 shows a visitor pre-registration process 216 performed prior toinvoking Web page display process 110 (FIG. 3). Visitor pre-registrationprocess 216 may be performed by a user of second processor platform 24(FIG. 1) via an access account (not shown). Visitor pre-registrationprocess 216 allows users to have some preference control over any addedfunction, such as media appliance metaphor 111 (FIG. 4) that they mayencounter when downloading Web pages having first code module 36embedded therein.

Visitor pre-registration process 216 begins with a task 218. Task 218causes processor 62 (FIG. 1) of server system 26 to receive a request(not shown) to pre-register from second processor platform 24. Such arequest may be received over a communication link, such as networkconnection 96, via Internet 28, following the assignment of an accessaccount to second processor platform 24.

In connection with task 218, a task 220 is performed. Task 220 causesprocessor 62 to receive browser information 56 and platform information58 from second processor platform 24 via network connection 96.

Following task 220, a task 222 is performed. In a manner similar to task198 of visitor registration process 196 (FIG. 8), server system 26applies a tracking index or cookie, such as tracking index 60, to secondprocessor platform 24.

Next a task 224 is performed. In task 224, processor 62 and secondprocessor platform 24 perform an interactive process to obtain visitorspecified parameters for establishing visitor specified parameter set212 (FIG. 9). Such visitor specified parameters may include, forexample, the appearance of specified metaphors, specific audio channels,format preferences, such as location on the Web page, size, color, andso forth.

Following task 224, a task 226 is performed. Task 226 causes processor62, through the execution of visitor database instructions 82 (FIG. 1),to generate an entry, such as entry 210 (FIG. 9) in visitor database 70to store browser information 56 and platform information 58 inassociation with tracking index 60.

In addition a task 228 is performed in connection with task 226. Task228 causes processor 62, executing visitor database instructions 82, toappend entry 210 with visitor specified parameter set 212, asillustrated in visitor database 70 (FIG. 9). Following task 228, visitorpre-registration process 216 exits.

Referring back to query task 214 of service response provision process122 (FIG. 5), when processor 62 determines that entry 210 (FIG. 9)includes visitor specified parameter set 212 obtained through theexecution of visitor pre-registration process 216 (FIG. 10), process 122proceeds to a task 230.

Task 230 causes processor 62 to access Web address database 68 to amenda service response in service response field 154 (FIG. 7) to indicate avisitor specified conditional service is to be provided for secondprocessor platform 24. Referring momentarily to Web address database 68(FIG. 7), database 68 includes a fourth exemplary entry 232 for a Webaddress 38 identified simply as URL 4 in Web address field 150, aprofile 234 in profile field 152 associated with URL 4 indicates Webpage 34 as being directed toward FOOTBALL. Service response 186indicating predetermined service is entered in service response field154 for fourth entry 232, and predetermined content set 188 associatedwith service response 186 is entered in parameter set field 156.

In response to task 230, service response field 154 also includes a flag236 associated with tracking index 60 indicating that predeterminedservice response 186 is amended to conditional service response 176 forsecond platform 24. Flag 236 indicates to processor 62 to access visitorpreferences field 208 (FIG. 9) of visitor database 70 for visitorspecified parameter set 212. Although, fourth exemplary entry 232 isshown having a predetermined service response 186, it should be readilyunderstood that the service response may be a conditional response 176(FIG. 7) in which the Web page designer has customized metaphor 111(FIG. 4) during registration subprocess 132 (FIG. 6).

With reference back to process 122 (FIG. 5) following task 230 or whenquery task 214 determines that entry 210 (FIG. 9) of visitor database 70does not include visitor specified; parameter set 212, process 122proceeds to a task 238.

Task 238 causes processor 62 to execute code assembler instructions 86(FIG. 1) to assemble second code module 90. Second code module 90 isassembled by accessing the predetermined one of denial of serviceresponse 162 (FIG. 7), conditional service response 176 (FIG. 7), andpredetermined service response 186 (FIG. 7) from Web address database68. In addition, second code module 90 is assembled in response tobrowser information 56 and platform information 58. In other words,second code module 90 is assembled to include the service response andto work with any combination of browser/platform systems.

This feature eliminates the need for an affiliate program to be hardcoded, installed onto Web page 34, then tested and debugged byprogrammers. In addition, since second code module 90 is assembled inresponse to browser information 56, second code module 90 is compatiblewith Web browser 52 (FIG. 1) used by second processor platform 24 (FIG.1).

Second code module 90 may also include another Web address 240,represented in parameter set field 156 of second entry 175 of Webaddress database 68 (FIG. 7). In this exemplary scenario, the mediasource (audio, video, graphics, banners, informational feed, etc.)originates from a platform (not shown) connected through Internet 28(FIG. 1) whose location is specified by Web address 240.

Following assembly of second code module 90 in task 238, a task 242 isperformed by server system 26. Task 242 causes processor 62 through theexecution of CGI program 84 (FIG. 1), to communicate second code module90 to second processor platform 24 via network connection 96. Inaddition, through the execution of communication instructions 88(FIG. 1) and the execution of appropriate command and control protocols,processor 62 manages servers 72 (FIG. 1) in order to direct informationcontent from the media source having Web address 240 to second processorplatform 24.

Referring to Web page display process 110 (FIG. 3), display process 110performs a task 244. Task 244 is complementary to task 242 of provisionprocess 122. That is, as server system 26 communicates second codemodule 90 to second processor platform 24, task 244 causes platform 24to receive, via network connection 96 (FIG. 1), second code module 90.Second code module is subsequently stored in temporary memory 54(FIG. 1) of second processor platform 24.

Following receipt of second code module 90, process 110 proceeds to atask 246. Task 246 causes Web browser 52 (FIG. 1) to execute thirdcommand line 100 (FIG. 2) of first code module 36 containing comment tag102. In addition, task 246 causes Web browser 52 to execute fourthcommand line 104 (FIG. 2) of first code module 36 issuing second command106 to initiate the execution of second code module 90.

In response to issuing second command 106 in task 246, a task 248 isperformed. Task 248 causes Web browser 52 to execute second code module90.

In response to task 248, a task 250 is performed. Task 250 causes mediaappliance metaphor 111 (FIG. 4) to be applied to Web page 34 for displayat display device 48 (FIG. 1). Of course, as discussed previously, ifthe service response is denial of service response 162, media appliancemetaphor 111 may be presented with a slash through it or may be absentfrom Web page 34.

Referring to FIG. 4, the service response is media appliance metaphor111 presenting a radio image. Through media appliance metaphor 111,streaming audio in the form of a radio channel 252 playing country musicis provided and presented through speakers 50 (FIG. 1). Country radiochannel 252 enhances the appeal of Web page 34 through an audioexperience that compliments Web page 34 whose information contentinvolves Texas Cooking. In connection with music provided through radiochannel 252, commercials may be aired that are related to theinformation content of Web page 34. Such commercials may include contentrelevant to Texas cooking, for example, food items, antacids, barbecues,and so forth. Thus, metaphor 111 is able to deliver targeted advertisingto a visitor accessing Web page 34.

Metaphor 111 also includes additional controls. For example, a drop downmenu 254 is provided for selection of a different radio channel. Inaddition, a control button 256 allows a user to forward and reverseradio channel 252, another control button 258 allows a user to play orpause radio channel 252, and a volume slide 260 allows a user to adjustthe volume of radio channel 252. An arrow image 262 included in metaphor111 activates a portable mode (discussed below).

In response to the display of metaphor 111 in task 250, a query task 264is performed. Query task 264 causes second processor platform 24,operating through Web browser 52, to determine if a command is detectedto detach metaphor 111 from Web page 34 in order to activate a portablemode. A portable mode may be selected when a user clicks on arrow image262. When task 252 determines that the portable mode has been selectedprocess 110 proceeds to a task 266.

Task 266 causes second processor platform 24 to display metaphor 111, ina portable mode, on a refreshed display. FIG. 11 shows electronicdisplay 48 presenting media appliance metaphor 111 detached from the Webpage 34 and appearing in a portable mode 268. In an exemplaryembodiment, when arrow image 262 is clicked, metaphor 111 changes inappearance to portable mode 268. This change of appearance may reflect apredetermined response by server system 26 or visitor specifiedpreferences set in visitor pre-registration process 216 (FIG. 10).

FIG. 12 shows electronic display 48 presenting a new Web page 270downloaded at second processor platform 24 and including media appliancemetaphor 111 in portable mode 268. Thus, although Web page 34 (FIG. 11)is no longer being display on electronic display 48, a user of secondprocessor platform is still able to enjoy the information contentsupplied by metaphor 111.

Following task 266 and when query task 264 determines that metaphor 111is not to be detached from Web page 34, a query task 272 is performed.Query task 272 determines if display of metaphor 111 is to beterminated. Metaphor 111 may be terminated when a user of secondprocessor platform 24 does not detach metaphor 111 from Web page 34 anddownloads a subsequent. Web page. In another exemplary scenario, secondprocessor platform 24 may be voluntarily or involuntarily disconnectedfrom server system 26 through the execution of fifth command line 108(FIG. 2) of first code module 36 terminating second command 106 (FIG.2). In yet another exemplary scenario, metaphor 111 may be terminatedwhen in portable mode 268 by clicking on the close window control, suchas an X symbol 274 (FIG. 12).

When query task 272 determines that metaphor 111 is not to beterminated, program control loops back to task 250 to continue displayof metaphor 111. However, when query task 272 determines that metaphor111 is to be terminated process 110 proceeds to a task 276.

Task 276 causes second processor platform 24 to discontinue the displayof metaphor 111 on display device 48. Following task 276, process 110exits.

Referring to service response provision process 122 (FIG. 5), processor62 (FIG. 1) of server system 26 performs query task 278. Query task 278is complementary to query task 272 of display process 110. That is,processor 62 monitors for the termination of metaphor 111 in query task272 and determines at query task 278 whether service should continue.

Communication instructions 88 (FIG. 1) executed by processor 62 includesa timing parameter, or clock, (not shown) that is started to allow for acontinuous periodic check for continuation of service. In query task278, when service is to continue, process 122 proceeds to a task 280.Task 280 causes server system 26, through the continued execution ofcommunication instructions 88 at processor 62, to continue directingstreaming media associated with metaphor 111 to second processorplatform 24. Following task 280, process 122 loops back to query task278 to continue the periodic check for continuation of service.

When query task 278 determines that service is to be discontinued,process 122 proceeds to a task 282. Task 282 causes server system 26 toterminate services. That is, task 282 causes server system 26 todiscontinue directing streaming media associated with metaphor 111 tosecond processor platform 24. Following task 282, process 122 exits.

In summary, the present invention teaches of a method and system foradding function, such as streaming media or other media services to aWeb page, through the implementation of a simple code module embedded inthe HTML of the Web page. The code module is compatible with Webbrowsers which adhere to the standards for HyperText Transfer Protocol(HTTP) because it is implemented using a common subset of the currentHTML standard command set. In addition, the code module is easilydistributed through the Internet, and is readily copied and pasted intoa Web page during Web page development activities, and undergoesautomatic execution and registration with minimal effort by the Web pagedeveloper. The present invention is able to tailor the added functionbased on information about the Web page in which it is embedded andbased on visitor specified preferences.

Although the preferred embodiments of the invention have beenillustrated and described in detail, it will be readily apparent tothose skilled in the art that various modifications may be made thereinwithout departing from the spirit of the invention or from the scope ofthe appended claims. The specification and drawings are, accordingly, tobe regarded in an illustrative rather than restrictive sense.Furthermore, although the present invention is described in connectionwith a media appliance metaphor for providing streaming audio, this isnot intended to be limiting. For example, the metaphor may providingstreaming video and other multimedia communication formats.

What is claimed is:
 1. A method of operating a computer network to addfunction to a Web page comprising the steps of: downloading said Webpage at a processor platform, said downloading step being performed by aWeb browser; when said Web page is downloaded, automatically executing afirst code module embedded in said Web page; said first code moduleissuing a first command to retrieve a second code module, via a networkconnection, from a server system; receiving, at said server system,first information characterizing said Web browser in response to saidexecuting step; receiving, at said server system, second informationcharacterizing said processor platform in response to said executingstep; storing said first and said second information in a visitordatabase of said server system, said first and said second informationbeing associated with a tracking index; assembling, at said serversystem, said second code module, said second code module containing aservice response related to said Web page; said second code module beingresponsive to said first and second information; downloading, inresponse to said first command, said code module to said processorplatform; and said first code module issuing a second command toinitiate execution of said second code module at said processorplatform.
 2. A method as claimed in claim 1 wherein said Web browseremploys HyperText Transfer Protocol (HTTP) and said first code module isgenerated in a HyperText Markup Language (HTML).
 3. A method as claimedin claim 2 wherein said Web page is generated in said HTML, and saidfirst code module includes a comment tag informing said Web browser toignore said second command.
 4. A method as claimed in claim 1 whereinsaid method further comprises the steps performed by said server systemof: receiving a Web address of said Web page; determining if said Webpage is registered with said server system; and when said Web page isnot registered, performing a registration of said Web page.
 5. A methodas claimed in claim 4 wherein said performing step comprises the stepsof: receiving said Web page at said server system; extractinginformational content of said Web page; archiving said informationalcontent of said Web page; and producing a profile of said Web page inresponse to said extracting and archiving steps.
 6. A method as claimedin claim 5, wherein said service response is related to said profile ofsaid Web page, further comprising the steps of: storing said serviceresponse in association with said Web address; accessing said serviceresponse when said first code module issues said first command.
 7. Amethod as claimed in claim 1 wherein said second code module includes aservice response indicating a denial of service.
 8. A method as claimedin claim 1 wherein said second code module includes a service responseindicating a conditional service.
 9. A method as claimed in claim 1wherein said second code module includes a service response indicating apredetermined service.
 10. A method as claimed in claim 1 furthercomprising the steps of: applying said tracking index to said processorplatform in response to said first and second information; and usingsaid tracking index at said server system to track and identify saidprocessor platform.
 11. A method as claimed in claim 10 furthercomprising the steps of: appending visitor specified parameters to avisitor database entry for said first and said second informationassociated with said tracking index; executing said second code modulein response to said second command; and presenting, at said processorplatform, a service response having a conditional service characterizedby said visitor specified parameters.
 12. A method as claimed in claim11 wherein prior to said downloading step, said method further comprisesthe steps of: registering said first and second informationcharacterizing said Web browser and said processor platform in saidvisitor database; and establishing said visitor specified parameters.13. A method as claimed in claim 1 further comprising the steps of:executing said second code module in response to said second command;and presenting a service response upon execution of said second codemodule.
 14. A method as claimed in claim 13 wherein said serviceresponse is a metaphor, and said method further comprises the step ofdisplaying said metaphor in connection with said Web page on saidprocessor platform.
 15. A method as claimed in claim 14 furthercomprising the step of customizing said metaphor to include a parameterset relevant to said Web page, said customized metaphor describing aconditional service presented upon execution of said second code module.16. A method as claimed in claim 14 further comprising the steps of:detaching said metaphor from said Web page; and displaying said metaphordisassociated from said Web page.
 17. A method as claimed in claim 13further comprising the step of terminating said presenting step upondetection, at said server system, of a terminate service responseindicator from said processor platform.
 18. A method as claimed in claim1 further comprising the steps of: executing said second code module inresponse to said second command, said second code module including a Webaddress for a second Web page; downloading information content from saidsecond Web page at said processor platform; and presenting saidinformation content in a service response at said processor platform.19. A computer readable code module for adding function to a Web page,said code module configured to be embedded in said Web page generated ina HyperText Markup Language (HTML) and configured for automaticexecution when said Web page is downloaded to a client machinesupporting a graphical user interface and a Web browser, said computerreadable code module including: means for communicating a Web address ofsaid Web page to a server system via a network connection to initiate adownload of a second computer readable code module to said clientmachine; means for communicating first information characterizing saidWeb browser to said server system; means for Communicating secondinformation characterizing said client machine to said server system;means for assembling, at said server system, said second computerreadable code module, said second computer readable code modulecontaining a service response related to said Web page, said secondcomputer readable code module being responsive to said first and secondinformation; means for downloading said second computer readable codemodule to said client machine; means for initiating execution of saidsecond computer readable code module following said download of saidsecond computer readable code module; and means for providing a commenttag informing said Web browser to ignore said initiating means.
 20. Acomputer readable code module as claimed in claim 19 wherein said codemodule is generated in said HTML.
 21. A computer network comprising afirst processor platform for maintaining a Web page accessible through aWeb address, said Web page including a first code module embeddedtherein, and a second processor platform in communication with saidfirst processor platform via a network connection, said second processorplatform supporting a Web browser, said Web browser being configured todownload said Web page and execute said first code module, wherein: saidfirst code module issues a first command to retrieve a second codemodule; and said computer network further comprises a server system incommunication with said second processor platform for receiving saidfirst command, said server system including: a database having storedtherein a service response in association with said Web address; aprocessor, in communication with said database, for assembling saidsecond code module having said service response; and means forcommunicating said second code module to said second processor platform,such that upon retrieving said second code module, said first codemodule issues a second command to initiate execution of said second codemodule at said second processor platform.
 22. A computer network asclaimed in claim 21 wherein said server system further comprises amemory element accessible by said processor, said memory element havinginstructions stored therein which, when executed by said processor,cause said processor to access said database to locate an entry in saiddatabase for said Web address, and when said entry is absent, saidinstructions cause said processor to receive said Web page, extractinformational content of said Web page, archive said informationalcontent in said database, and produce a profile of said Web page.
 23. Acomputer network as claimed in claim 22 wherein said instructionsfurther cause said processor to generate said entry for said Web addressin said database, said entry including said service response related tosaid profile.
 24. A computer network as claimed in claim 23 wherein saidservice response is a metaphor, and said instructions further cause saidprocessor to establish a parameter set in response to said profile, saidparameter set defining said metaphor.
 25. A computer network as claimedin claim 21 wherein said server system further comprises: means forreceiving, from said second processor platform, first informationrelated to said Web browser and second information related to saidsecond processor platform, said processor being in communication withsaid receiving means; and a memory element accessible by said processor,said memory element having instructions stored therein which, whenexecuted by said processor, cause said processor to assemble said secondcode module in response to said first and second information.
 26. Acomputer network as claimed in claim 21 wherein said server systemfurther comprises: means for receiving, from said second processorplatform, first information related to said Web browser and secondinformation related to said second processor platform, said processorbeing in communication with said receiving means; a visitor database;and a memory element accessible by said processor, said memory elementhaving instructions stored therein which, when executed by saidprocessor, cause said processor to apply a tracking index to said secondprocessor platform for subsequent access by said server system and togenerate an entry in said visitor database, said entry including saidfirst and second information related to said tracking index.
 27. Acomputer network as claimed in claim 26 wherein said server systemfurther comprises: an input element for receiving visitor specifiedparameters; and means for amending said entry in said visitor databasein response to said visitor specified parameters.
 28. A computer networkas claimed in claim 21 wherein said service response includes a secondWeb address for a second Web page, and said second code module includessaid second Web address for subsequent download of information contentfrom said second Web page by said Web browser of said second processorplatform when said first code module issues said second command.